import {
  defineStore
} from "pinia";


export const websocket = defineStore('websocket', () => {
  let websocket = null;

  //判断当前浏览器是否支持WebSocket
  if ('WebSocket' in window) {
    //连接WebSocket节点
    websocket = new WebSocket("ws://localhost:8080/chat/" + userStore.userInfo.id);
  } else {
    // alert('Not support websocket')
  }


  //连接发生错误的回调方法
  websocket.onerror = function () {
    // alert("WebSocket连接发生错误");
  };

  //连接成功建立的回调方法
  websocket.onopen = function () {
    // alert("连接成功")
  }

  //接收到消息的回调方法
  websocket.onmessage = function (event) {
    console.log(event);

    receiveMessage(event.data);
  }

  //连接关闭的回调方法
  websocket.onclose = function () {
    setMessageInnerHTML("close");
  }

  //监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
  window.onbeforeunload = function () {
    websocket.close();
  }


  //发送消息
  async function send() {
    websocket.send(messageText.value.trim() + "u" + props.list[selectedChat.value].receiveId);
  }

  //关闭连接
  function closeWebSocket() {
    websocket.close();
  }




  // #endregion

  return {
    websocket
  }
})